#[钛妹]: 字典创建好了还能随便改？键值对怎么添加删除啊？
#[钛哥]: 字典就像橡皮泥，想怎么捏就怎么捏！看哥给你表演字典魔术~

# 初始字典
mobile_phone = {
    "brand": "钛钛手机",
    "model": "X100",
    "year": 2023
}

#[钛妹]: 我要改手机型号咋操作？
#[钛哥]: 直接定位钥匙换内容，so easy！
mobile_phone["model"] = "X200"
print(f"改型号后：{mobile_phone}")  # model变为X200

#[钛妹]: 批量更新数据有没有高级方法？
#[钛哥]: update()大法来也，字典参数最标准：
mobile_phone.update({"year": 2024, "color": "钛金灰"})
print(f"批量更新后：{mobile_phone}")  # 新增color，year变2024

# 新字典演示添加操作
empty_dict = {}

#[钛妹]: 空字典怎么添加数据啊？
#[钛哥]: 直接当新钥匙挂上去就行！
empty_dict["OS"] = "TTOS 2.0"
empty_dict.setdefault("RAM", "16GB")
print(f"添加数据后：{empty_dict}")  # 显示OS和RAM

#[钛妹]: setdefault是啥黑魔法？
#[钛哥]: 安全添加！钥匙存在就不动，不存在才添加：
empty_dict.setdefault("OS", "备用系统")
print(f"重复setdefault：{empty_dict}")  # OS保持TTOS 2.0

# 删除演示专用字典
del_demo = {
    "A": "数据1",
    "B": "数据2", 
    "C": "数据3",
    "D": "数据4"
}

#[钛妹]: 删除操作好多花样，该用哪个？
#[钛哥]: 精准打击用pop，拆盲盒用popitem：
removed = del_demo.pop("B")
print(f"删除B后：{del_demo}，移除的值：{removed}")

last_item = del_demo.popitem()
print(f"随机删除后：{del_demo}，最后项：{last_item}")

#[钛妹]: del和clear有啥区别？
#[钛哥]: del是定向爆破，clear是大扫除：
del del_demo["A"]
print(f"删除A后：{del_demo}")  # 只剩C(假设之前删了D)

del_demo.clear()
print(f"清空后：{del_demo}")  # 空字典

#[钛妹]: 听说del还能删整个字典？
#[钛哥]: 看好了！(操作后字典就不存在了)
# del del_demo
# print(del_demo)  # 会报NameError

#[钛哥]: 重点总结来啦！
# 1.修改值：直接赋值或update
demo = {"key": "old"}
demo["key"] = "new"
demo.update({"key": "newer"})

# 2.添加项：新键赋值/update/setdefault
demo["new_key"] = "value"
demo.update({"new_key2": "value2"})
demo.setdefault("unique_key", "default")

# 3.删除全家桶：
# pop指定删除 | popitem随机删除
# del定向删除 | clear清空内容
# del删除整个字典需谨慎

#[钛妹]: 字典操作六边形战士啊！
#[钛妹]: 这下处理动态配置再也不用愁啦！

#[钛妹]: 对了各位！持续学习才是硬道理！点赞关注不迷路！